package ccnu.agile.service;

import com.auth0.jwt.interfaces.Claim;

import java.util.Map;

/**
 * token颁发/校验服务类
 */
public interface ITokenService {

    /**
     * 生成token
     *
     * @return
     */
    String generate(Map<String, String> map);

    /**
     * 校验token
     *
     * @return
     */
    void validate(String token);

    /**
     * 获取token对应的PayLoad信息
     * @param token
     * @return
     */
    Map<String, Claim> getClaims(String token);

    /**
     * 获取token参数
     * @param token
     * @param param
     * @param clazz
     * @param <T>
     * @return
     */
    <T> T getValue(String token, String param, Class<T> clazz);
}
